<?php
namespace app\index\model;

class Content extends Base
{
    /**
     * getInfo方法
     * @param $id 要获取的内容ID
     * @result 格式化后的内容信息
     */

    public function getInfo($id)
    {
        if(empty($id))
            return false;
        $result = $this->find($id);
        $result = $this->forJsonDecode($result, ['tags_value'=>'tag']);
        return $result;
    }

    /**
     * getList方法
     * @param $termId 要获取内容的栏目ID,或栏目ID数组
     * @result 格式化后的内容信息
     */

    public function getList($termId, $param=null)
    {
        if(empty($termId))
            return false;
        if($param!==null)
            foreach($param as $key=>$value)
                $this->$key($value);
        if(is_array($termId))
            $where['term_id'] = ['IN', $termId];
        else
            $where['term_id'] = $termId;
        $where['status'] = 1;
        $result = $this->order('create_time')->where($where)->select();
        $result = $this->forJsonDecode($result, ['tags_value'=>'tag']);
        return $result;
    }

    /**
     * getCount方法
     * @param $termId 要获取内容的栏目ID
     * @result 栏目下信息总数
     */

    public function getCount($termId, $param=null)
    {
        if(empty($termId))
            return false;
        $where['term_id'] = $termId;
        return $this->where($where)->count();
    }

    /**
     * getSearch方法
     * @param $modelId 要获取内容的栏目ID
     * @result 格式化后的内容信息
     */

    public function getSearch($modelId, $keyword, $param=null)
    {
        $modelId = intval($modelId);
        $where['status']    = 1;
        if(empty($keyword))
            return [];
        if(!empty($keyword))
            $where['name']      = ['LIKE', '%'.$keyword.'%'];
        if($param!==null)
            foreach($param as $key=>$value)
                $this->$key($value);
        if(!empty($modelId))
            $where['model_id'] = $modelId;
        return $this->where($where)->select();
    }

    /**
     * getSearchCount方法
     * @param $modelId 要获取内容的栏目ID
     * @result 搜索结果的总数
     */

    public function getSearchCount($modelId, $keyword, $param=null)
    {
        $modelId = intval($modelId);
        $where['status']    = 1;
        if(empty($keyword))
            return 1;
        if(!empty($keyword))
            $where['name']      = ['LIKE', '%'.$keyword.'%'];
        if(!empty($modelId))
            $where['model_id'] = $modelId;
        return $this->where($where)->Count();
    }

    /**
     * getNext方法
     * @param $info 当前内容的信息
     * @result 获取下一条内容的信息
     * TODO
     */
	public function getNext($info=null)
    {
        if(empty($info))
            return false;
        if(!is_array($info))
            $info = $this->getInfo($info);
        $order = 'create_time';
        $where = [
            $order      =>  ['GT', $info[$order]],
            'term_id'   =>  $info['term_id'],
        ];
        return $this->where($where)->order($order." asc")->find();
    }

    /**
     * getLast方法
     * @param $info 当前内容的信息
     * @result 获取上一条内容的信息
     * TODO
     */
	public function getLast($info=null)
    {
        if(empty($info))
            return false;
        if(!is_array($info))
            $info = $this->getInfo($info);
        $order = 'create_time';
        $where = [
            $order      =>  ['LT', $info[$order]],
            'term_id'   =>  $info['term_id'],
        ];
        return $this->where($where)->order($order." desc")->find();
    }
}

